home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / basic / clockita.lha / OrologioSource.text < prev   
Text File  |  2000-02-22  |  10KB  |  403 lines

  1. ;-> Orologio by Stefano Regattin
  2. ;d> 9 ottobre 1998 da Clock
  3. ;m> 10,11,16,17,19,24,29 ottobre 1998
  4. ;m> 4,6 novembre 1998
  5. ;m> 13,14,23 dicembre 1998
  6. ;m> 3 gennaio 1999
  7. ;m> 9,12 marzo 1999
  8. ;m> 25,26 settembre 1999
  9. ;m> 1,2,3,5,6,7,8,9,10,11,22 febbraio 2000
  10. ;------------------------------------------
  11. #HaiCambiatoLeDimensioniDellaFinestra=2
  12. #HaiPremutoUnTastoDelTopo=8
  13. #HaiRilasciatoUnGadget=$40
  14. #HaiChiusoLaFinestra=$200
  15.  
  16. DEFTYPE .l RastPortFinestra
  17.  
  18. DEFTYPE .b AltezzaFontRegistrata,NumeroToolType,ToolTypeScritti
  19.  
  20. DEFTYPE .w
  21.  
  22. AltezzaFont.b=13
  23.  
  24. Statement ApriFinestraZero{}
  25. SHARED LunXFinestraZero
  26. SHARED LunYFinestraZero
  27. SHARED PosXFinestraZero
  28. SHARED PosYFinestraZero
  29. SHARED RastPortFinestra
  30.  Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
  31.  WTitle "Orologio","by Stefano Regattin e-mail>StefanoRegattin@lycosmail.com"
  32.  RastPortFinestra=RastPort(0)
  33.  WindowFont 0
  34. End Statement
  35.  
  36. Statement LeggiToolType{}
  37. SHARED FontOrologio$
  38. SHARED FontOrologioRegistrato$
  39. SHARED IconaOrologio$
  40. SHARED AltezzaFont
  41. SHARED AltezzaFontRegistrata
  42. SHARED PosXFinestraZero
  43. SHARED PosXFinestraZeroRegistrata
  44. SHARED PosYFinestraZero
  45. SHARED PosYFinestraZeroRegistrata
  46.  ToolTypeLetti.l=GetIconObject(IconaOrologio$)
  47.  If ToolTypeLetti>0
  48.   NuovoFontOrologio$=FindToolValue("FONTNAME")
  49.   NuovaAltezzaFont$=FindToolValue("FONTSIZE")
  50.   NuovaPosXFinestraZero$=FindToolValue("WINDOWX")
  51.   NuovaPosYFinestraZero$=FindToolValue("WINDOWY")
  52.   If NuovoFontOrologio$<>""
  53.    FontOrologioRegistrato$=NuovoFontOrologio$
  54.    FontOrologio$=NuovoFontOrologio$
  55.   EndIf
  56.   If NuovaAltezzaFont$<>""
  57.    AltezzaFontRegistrata=Val(NuovaAltezzaFont$)
  58.    AltezzaFont=Val(NuovaAltezzaFont$)
  59.   EndIf
  60.   If NuovaPosXFinestraZero$<>""
  61.    PosXFinestraZeroRegistrata=Val(NuovaPosXFinestraZero$)
  62.    PosXFinestraZero=Val(NuovaPosXFinestraZero$)
  63.   EndIf
  64.   If NuovaPosYFinestraZero$<>""
  65.    PosYFinestraZeroRegistrata=Val(NuovaPosYFinestraZero$)
  66.    PosYFinestraZero=Val(NuovaPosYFinestraZero$)
  67.   EndIf
  68.   FreeIconObject
  69.  EndIf
  70. End Statement
  71.  
  72. Statement ScriviToolType{}
  73. SHARED FontOrologio$
  74. SHARED FontOrologioRegistrato$
  75. SHARED IconaOrologio$
  76. SHARED AltezzaFont
  77. SHARED AltezzaFontRegistrata
  78. SHARED PosXFinestraZero
  79. SHARED PosXFinestraZeroRegistrata
  80. SHARED PosYFinestraZero
  81. SHARED PosYFinestraZeroRegistrata
  82. SHARED ToolTypeScritti
  83.  ToolTypeLetti.l=GetIconObject(IconaOrologio$)
  84.  If ToolTypeLetti>0
  85.   If FindToolType("DONOTWAIT")=False Then NewToolType "DONOTWAIT",""
  86.   If FindToolType("FONTNAME")=True
  87.    SetToolValue "FONTNAME",FontOrologio$
  88.   Else
  89.    NewToolType "FONTNAME",FontOrologio$
  90.   EndIf
  91.   If FindToolType("FONTSIZE")=True
  92.    SetToolValue "FONTSIZE",Str$(AltezzaFont)
  93.   Else
  94.    NewToolType "FONTSIZE",Str$(AltezzaFont)
  95.   EndIf
  96.   If FindToolType("WINDOWX")=True
  97.    SetToolValue "WINDOWX",Str$(PosXFinestraZero)
  98.   Else
  99.    NewToolType "WINDOWX",Str$(PosXFinestraZero)
  100.   EndIf
  101.   If FindToolType("WINDOWY")=True
  102.    SetToolValue "WINDOWY",Str$(PosYFinestraZero)
  103.   Else
  104.    NewToolType "WINDOWY",Str$(PosYFinestraZero)
  105.   EndIf
  106.   ToolTypeScritti=PutIconObject(IconaOrologio$)
  107.   If ToolTypeScritti=True
  108.    FontOrologioRegistrato$=FontOrologio$
  109.    AltezzaFontRegistrata=AltezzaFont
  110.    PosXFinestraZeroRegistrata=PosXFinestraZero
  111.    PosYFinestraZeroRegistrata=PosYFinestraZero
  112.   EndIf
  113.   FreeIconObject
  114.  EndIf
  115. End Statement
  116.  
  117. Statement CercaFont{}
  118. SHARED FontOrologio$
  119. SHARED AltezzaFont
  120.  NEWTYPE .FontInfo
  121.   Nome$
  122.   Altezza.w
  123.   Stile.b
  124.   Segnalatori
  125.   PennaUno
  126.   PennaDue
  127.   ModoDisegno
  128.   Pad
  129.  End NEWTYPE
  130.  
  131.  *Font.FontInfo=ASLFontRequest(0)
  132.  
  133.  If *Font<>0
  134.   FontOrologio$=*Font\Nome
  135.   AltezzaFont=*Font\Altezza
  136.  EndIf
  137. End Statement
  138.  
  139. Statement Impostazioni{}
  140. SHARED OraAllarme$
  141. SHARED OraDiOggi$
  142. SHARED FontOrologio$
  143. SHARED FontOrologioRegistrato$
  144. SHARED AltezzaFont
  145. SHARED AltezzaFontRegistrata
  146. SHARED LunXSchermo
  147. SHARED PosXFinestraZero
  148. SHARED PosXFinestraZeroRegistrata
  149. SHARED PosYFinestraZero
  150. SHARED PosYFinestraZeroRegistrata
  151. SHARED StatoAllarme
  152. SHARED ToolTypeScritti
  153.  StringGadget 0,1,1,0,0,6,6*8
  154.  StringGadget 0,1,14,0,1,25,106
  155.  StringGadget 0,75,1,0,2,4,4*8
  156.  TextGadget 0,58,1,1,3,"A"
  157.  StringGadget 0,9,27,0,4,5,5*8
  158.  StringGadget 0,67,27,0,5,5,5*8
  159.  TextGadget 0,3,40,1,6,"*** Salva ***"
  160.  PosXFinestraZero=WindowX-WLeftOff
  161.  PosYFinestraZero=WindowY-WTopOff
  162.  PosXFinestraUno=WindowX
  163.  PosYFinestraUno=WindowY
  164.  LunXFinestraUno=124
  165.  LunYFinestraUno=74
  166.  If PosXFinestraUno+124>LunXSchermo Then PosXFinestraUno=LunXSchermo-124
  167.  If PosYFinestraUno+74>WBHeight Then PosYFinestraUno=WBHeight-74
  168.  Window 1,PosXFinestraUno,PosYFinestraUno,LunXFinestraUno,LunYFinestraUno,$140A,"",1,2,0
  169.  WTitle "Impostazioni","Imposta le variabili dell'orologio"
  170.  WindowFont 1
  171.  WLocate 0,29:Print "X"
  172.  WLocate 58,29:Print"Y"
  173.  If OraAllarme$="" Then OraAllarme$=UnLeft$(OraDiOggi$,3)
  174.  Repeat
  175.   SetString 0,0,OraAllarme$
  176.   Redraw 1,0
  177.   SetString 0,1,FontOrologio$
  178.   Redraw 1,1
  179.   SetString 0,2,Str$(AltezzaFont)
  180.   Redraw 1,2
  181.   SetString 0,4,Str$(PosXFinestraZero)
  182.   Redraw 1,4
  183.   SetString 0,5,Str$(PosYFinestraZero)
  184.   Redraw 1,5
  185.   ValoriCambiati.b=False
  186.   If FontOrologio$<>FontOrologioRegistrato$ Then ValoriCambiati=True
  187.   If AltezzaFont<>AltezzaFontRegistrata Then ValoriCambiati=True
  188.   If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
  189.   If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
  190.   If ValoriCambiati=True Then Enable 0,6 Else Toggle 0,6,Off:Disable 0,6
  191.   Redraw 1,6
  192.   EventoFinestra.l=WaitEvent
  193.   If EventoFinestra=#HaiRilasciatoUnGadget
  194.    If GadgetHit<>3 AND GadgetHit<>6 Then ActivateString 1,GadgetHit
  195.    Select GadgetHit
  196.    Case 0
  197.     OraAllarme$=StringText$(0,0)
  198.    Case 1
  199.     NuovoFontOrologio$=StringText$(0,1)
  200.     If NuovoFontOrologio$="" Then CercaFont{}
  201.     If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
  202.     If Len(NuovoFontOrologio$)>0
  203.      If Exists("FONTS:"+NuovoFontOrologio$)
  204.       FontOrologio$=NuovoFontOrologio$
  205.      EndIf
  206.     EndIf
  207.    Case 2
  208.     AltezzaFont=Val(StringText$(0,2))
  209.     AltezzaFont=Max(AltezzaFont,6)
  210.    Case 3
  211.     StatoAllarme=GadgetStatus(0,3)
  212.    Case 4
  213.     PosXFinestraZero=Val(StringText$(0,4))
  214.    Case 5
  215.     PosYFinestraZero=Val(StringText$(0,5))
  216.    Case 6
  217.     ScriviToolType{}
  218.     If ToolTypeScritti=True
  219.      Toggle 0,6,Off
  220.      Disable 0,6
  221.      Redraw 1,6
  222.     Else
  223.      Toggle 0,6,On
  224.     EndIf
  225.    End Select
  226.   EndIf
  227.  Until EventoFinestra=#HaiChiusoLaFinestra
  228.  CloseWindow 1
  229.  Use Window 0
  230.  WindowFont 0
  231. End Statement
  232.  
  233. Statement DataDiOggi{}
  234. SHARED Allarme$
  235. SHARED DataDiOggi$
  236. SHARED LunghezzaDataDiOggi
  237. SHARED LunghezzaScrittaAllarme
  238. SHARED RastPortFinestra
  239.  Select WeekDay
  240.  Case 0
  241.   GiornoDellaSettimana$="Dom"
  242.  Case 1
  243.   GiornoDellaSettimana$="Lun"
  244.  Case 2
  245.   GiornoDellaSettimana$="Mar"
  246.  Case 3
  247.   GiornoDellaSettimana$="Mer"
  248.  Case 4
  249.   GiornoDellaSettimana$="Gio"
  250.  Case 5
  251.   GiornoDellaSettimana$="Ven"
  252.  Case 6
  253.   GiornoDellaSettimana$="Sab"
  254.  End Select
  255.  Giorno$=Str$(Days)
  256.  Select Months
  257.  Case 1
  258.   Mese$="gennaio"
  259.  Case 2
  260.   Mese$="febbraio"
  261.  Case 3
  262.   Mese$="marzo"
  263.  Case 4
  264.   Mese$="aprile"
  265.  Case 5
  266.   Mese$="maggio"
  267.  Case 6
  268.   Mese$="giugno"
  269.  Case 7
  270.   Mese$="luglio"
  271.  Case 8
  272.   Mese$="agosto"
  273.  Case 9
  274.   Mese$="settembre"
  275.  Case 10
  276.   Mese$="ottobre"
  277.  Case 11
  278.   Mese$="novembre"
  279.  Case 12
  280.   Mese$="dicembre"
  281.  End Select
  282.  Anno$=Str$(Years)
  283.  DataDiOggi$=" "+GiornoDellaSettimana$+", "+Giorno$+" "+Mese$+" "+Anno$+" "
  284.  LunghezzaDataDiOggi.w=TextLength_(RastPortFinestra,&DataDiOggi$,Len(DataDiOggi$))
  285. End Statement
  286.  
  287. WBStartup
  288.  
  289. AltezzaFontSchermo.b=8
  290. OpenFontPrefs
  291.  AltezzaFontSchermo.b=DefaultFontHeight(2)
  292. CloseFontPrefs
  293.  
  294. WbToScreen 0
  295.  
  296. IndirizzoSchermo.l=Peek.l(Addr Screen(0))
  297. LunXSchermo=Peek.w(IndirizzoSchermo+12)
  298.  
  299. FontOrologio$="Data70.font"
  300.  
  301. PosXFinestraZero=0
  302. PosYFinestraZero=AltezzaFontSchermo+3
  303.  
  304. IconaOrologio$=ProgPath$+".info"
  305.  
  306. LeggiToolType{}
  307.  
  308. LoadFont 0,FontOrologio$,AltezzaFont
  309.  
  310. LoadFont 1,"topaz.font",8
  311.  
  312. LunXFinestraZero=70
  313. LunYFinestraZero=30
  314.  
  315. Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
  316. RastPortFinestra=RastPort(0)
  317. WindowFont 0
  318.  
  319. DataDiOggi$=Date$(SystemDate)
  320.  
  321. DataDiOggi{}
  322.  
  323. LunXFinestraZero=22+LunghezzaDataDiOggi
  324. LunYFinestraZero=WTopOff+AltezzaFont*2+6
  325.  
  326. ApriFinestraZero{}
  327.  
  328. RaggioCerchio=AltezzaFont/2
  329.  
  330. Repeat
  331.  EventoFinestra.l=Event
  332.  If EventoFinestra=#HaiCambiatoLeDimensioniDellaFinestra
  333.   AltezzaFont=InnerHeight/2
  334.   RaggioMassimoCerchio=AltezzaFont/2
  335.   LoadFont 0,FontOrologio$,AltezzaFont
  336.   WindowFont 0
  337.   WCls
  338.  EndIf
  339.  If EventoFinestra=#HaiPremutoUnTastoDelTopo
  340.   PrecedenteFontOrologio$=FontOrologio$
  341.   PrecedenteAltezzaFont.b=AltezzaFont
  342.   Impostazioni{}
  343.   Use Window 0
  344.   FinestraZeroAggiornata.b=False
  345.   If FontOrologio$<>PrecedenteFontOrologio$ OR AltezzaFont<>PrecedenteAltezzaFont
  346.    LoadFont 0,FontOrologio$,AltezzaFont
  347.    WindowFont 0
  348.    DataDiOggi{}
  349.    LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
  350.    LunYFinestraZero=WTopOff+AltezzaFont*2+6
  351.    If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo
  352.     PosXFinestraZero=LunXSchermo-LunXFinestraZero
  353.    EndIf
  354.    If PosYFinestraZero+LunYFinestraZero-1>WBHeight
  355.     PosYFinestraZero=WBHeight-LunYFinestraZero
  356.    EndIf
  357.    CloseWindow 0
  358.    ApriFinestraZero{}
  359.    FinestraZeroAggiornata=True
  360.   EndIf
  361.   If FinestraZeroAggiornata=False
  362.    If PosXFinestraZero<>WindowX-WLeftOff OR PosYFinestraZero<>WindowY-WTopOff
  363.     If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo
  364.      PosXFinestraZero=LunXSchermo-LunXFinestraZero
  365.     EndIf
  366.     If PosYFinestraZero+LunYFinestraZero-1>WBHeight
  367.      PosYFinestraZero=WBHeight-LunYFinestraZero
  368.     EndIf
  369.     CloseWindow 0
  370.     ApriFinestraZero{}
  371.    EndIf
  372.   EndIf
  373.   RaggioMassimoCerchio=AltezzaFont/2
  374.   RaggioCerchio=RaggioMassimoCerchio
  375.  EndIf
  376.  DataDiOggi$=Date$(SystemDate)
  377.  DataDiOggi{}
  378.  XData.w=(InnerWidth-LunghezzaDataDiOggi)/2
  379.  WLocate XData,0:Print DataDiOggi$
  380.  OraDiOggi$=Str$(Hours/10)
  381.  OraDiOggi$+Str$(Hours MOD 10)+":"
  382.  OraDiOggi$+Str$(Mins/10)
  383.  OraDiOggi$+Str$(Mins MOD 10)+":"
  384.  OraDiOggi$+Str$(Secs/10)
  385.  OraDiOggi$+Str$(Secs MOD 10)
  386.  LunghezzaOraDiOggi.w=TextLength_(RastPortFinestra,&OraDiOggi$,Len(OraDiOggi$))
  387.  XOra.w=(InnerWidth-LunghezzaOraDiOggi)/2-1
  388.  WLocate XOra,AltezzaFont:Print " ",OraDiOggi$," "
  389.  If StatoAllarme=True
  390.   If Left$(OraDiOggi$,5)=OraAllarme$ Then BeepScreen 0
  391.   XAllarme=InnerWidth-1-AltezzaFont/2
  392.   YAllarme=InnerHeight-1-AltezzaFont/2
  393.   WCircle XAllarme,YAllarme,RaggioCerchio,1
  394.  EndIf
  395.  Delay_ 50
  396.  If StatoAllarme=True
  397.   WCircle XAllarme,YAllarme,RaggioCerchio,0
  398.   RaggioCerchio+1
  399.   If RaggioCerchio>RaggioMassimoCerchio Then RaggioCerchio=1
  400.  EndIf
  401. Until EventoFinestra=#HaiChiusoLaFinestra
  402. End
  403.